// 可以获取接口的 key 组成的联合类型
interface Person {
  name: string
  age: number
}

// 怎么能把右边的类型给左边的 JS 变量呢？不行呀
// 因为类型一旦编译完就擦除了
// const a = keyof Person
type TPerson = keyof Person // 'name' | 'age'

const str: TPerson = 'name'

/* type TPerson2 = Person[]
const t2: TPerson2 = [{ name: 'xxx', age: 18 }] */

// 拿到数组的 key 所组成的联合类型
type TPerson2 = keyof Person[]
const t3: TPerson2 = 'join'

/* const arr = []
arr.push
arr.length */

export {}
